import galois

# 构造GF(2⁸)有限域，指定不可约多项式（如AES中常用的0x11B）
GF = galois.GF(2**8, irreducible_poly=0x11B)  # [[4]][[7]]

# 输入两个八位二进制数（示例：0x5e和0x3f）
a_hex = 0x59  # 二进制 01011110
b_hex = 0x12  # 二进制 00111111

# 转换为有限域元素
a = GF(a_hex)
b = GF(b_hex)

# 执行有限域乘法
result = a * b  # [[4]][[7]]

print(f"乘法结果（十进制）: {result}")
print(f"乘法结果（十六进制）: {hex(result)}")
print(f"乘法结果（二进制）: {bin(result)}")